package base.interactive.redis.bean;

import lombok.Data;
import lombok.experimental.Accessors;

import java.util.concurrent.TimeUnit;

/**
 * Redis lock
 *
 * @description:
 * @author: cyj
 * @date 2020 -10-28 14:58:29
 */
@Data
@Accessors(chain = true)
public class RedisLock {

    /**
     * Key string 上锁的key
     * 当 jointKey == false 时 为存文本, 例如: key1 , key2
     * 当 joinKey == true 时 为拼接文本, 以','隔开
     *        #开头+参数名 或者 #开头+参数名+点属性
     *        例#userId 或者 #object.name
     * @return the string
     */
    String key();

    /*
    * 是否为拼接文本
    * */
    boolean jointKey() default false;

    /**
     * Expire long 锁过期时间
     *
     * @return the long
     */
    long expire() default 500;

    /**
     * Try count int 次数
     *
     * @return the int
     */
    int tryCount() default 3;


    /**
     * Interval time long 重试间隔时间
     *
     * @return the long
     */
    long intervalTime() default 100;
}
